ters repo ne demek?

## Git ve GitHub'da "repo" (Repository) Kavramı

"Repo", kelime anlamı olarak "depo" anlamına gelir ve yazılım geliştirme bağlamında genellikle bir **projenin tüm dosyalarını, geçmişini (commit geçmişi), ve diğer ilgili kaynaklarını içeren merkezi bir depolama alanını** ifade eder.  Bir "repo", yerel bilgisayarınızda veya uzakta, örneğin [GitHub](https://www.nedemek.page/kavramlar/GitHub), [GitLab](https://www.nedemek.page/kavramlar/GitLab) veya [Bitbucket](https://www.nedemek.page/kavramlar/Bitbucket) gibi bir platformda barındırılabilir.

Temel olarak, bir "repo" aşağıdaki unsurları içerir:

*   **Proje Dosyaları:** Kaynak kodu dosyaları, resimler, belgeler, yapılandırma dosyaları ve diğer tüm proje ile ilgili dosyalar.
*   **Versiyon Kontrol Geçmişi:** Projede yapılan tüm değişikliklerin, kimin ne zaman değiştirdiğinin, ve bu değişikliklerin neden yapıldığının kayıtlarını tutan [commit](https://www.nedemek.page/kavramlar/commit) geçmişi. Bu, [Git](https://www.nedemek.page/kavramlar/Git)'in temel işlevselliğidir.
*   **Dallar (Branches):** Proje üzerinde farklı özellikler geliştirmek veya hataları düzeltmek için kullanılan [dallar](https://www.nedemek.page/kavramlar/branch).  Dallar, projenin ana hattından (genellikle "main" veya "master" dalı) ayrılır ve geliştirme tamamlandığında tekrar birleştirilebilir.
*   **Meta Veri:** Proje ile ilgili çeşitli bilgileri (örneğin, proje tanımı, lisans bilgisi, katkıda bulunma kılavuzu) içeren dosyalar.

**Repo'nun Faydaları:**

*   **Versiyon Kontrolü:** Projenin farklı versiyonlarını takip etme ve gerektiğinde eski versiyonlara geri dönme imkanı sağlar.
*   **İşbirliği:** Birden fazla geliştiricinin aynı proje üzerinde eş zamanlı olarak çalışmasına olanak tanır.
*   **Yedekleme:** Proje dosyalarının güvenli bir şekilde saklanmasını ve yedeklenmesini sağlar.
*   **Takip Edilebilirlik:** Projede yapılan tüm değişikliklerin kim tarafından, ne zaman ve neden yapıldığını takip etme imkanı sunar.
*   **Açık Kaynak Katkısı:** Projelerin açık kaynak olarak paylaşılması ve diğer geliştiricilerin katkıda bulunmasına olanak tanır.

**Repo Oluşturma ve Yönetimi:**

"Repo"lar genellikle Git komut satırı aracı veya GitHub, GitLab gibi platformların web arayüzleri aracılığıyla oluşturulur ve yönetilir.  Temel "repo" işlemleri şunları içerir:

*   **Oluşturma (Initialization):** Yeni bir "repo" başlatma.
*   **Klonlama (Cloning):** Mevcut bir "repo"nun yerel bir kopyasını oluşturma.
*   **Commit:** Yapılan değişiklikleri kaydetme.
*   **Push:** Yerel değişiklikleri uzak "repo"ya gönderme.
*   **Pull:** Uzak "repo"daki değişiklikleri yerel "repo"ya çekme.
*   **Branch:** Yeni bir dal oluşturma.
*   **Merge:** Dallar arasındaki değişiklikleri birleştirme.